package com.itheima.mapper;


import com.itheima.pojo.Dept;
import org.apache.ibatis.annotations.*;
import org.springframework.web.bind.annotation.DeleteMapping;

import java.util.List;

@Mapper
public interface DeptMapper {

    /*
    查询所有部门
    * */
    //实体类属性名和数据库表查询返回的字段名一致，mybatis会自动封装；不一致不会自动封装

    //方案一：手动结果映射
//    @Results({@Result(column = "create_time", property = "createTime"),
//              @Result(column = "update_time", property = "updateTime")})
//    @Select("select id,name,create_time,update_time from dept")
//    public List<Dept> findAll();

    //方案二：起别名
//    @Select("select id,name,create_time createTime,update_time updateTime from dept")
//    public List<Dept> findAll();

//    方案三：开启驼峰命名

    @Select("select id,name,create_time,update_time from dept")
    public List<Dept> findAll();


    //根据id删除部门
    @Delete("delete from dept where id = #{id}")
    void deleteById(Integer id);


    //保存部门
    @Insert("insert into dept(name,create_time,update_time) values (#{name},#{createTime},#{updateTime})")
    void insert(Dept dept);


    //根据id查询部门
    @Select("select id,name,create_time,update_time from dept where id = #{id}")
    Dept getById(Integer id);


    //更新部门
    @Update("update dept set name = #{name},update_time = #{updateTime} where id = #{id}")
    void update(Dept dept);
}
